Display and automatic improvement of timing and area in a network-on-chip

ABSTRACT

A method and NoC design tool is disclosed that automatically maps the paths listed in a timing report and the unit size in an area report to the topology of a NoC and displays the paths and unit sizes in a GUI. The tool can also automatically add pipeline stages, separated by the maximum delay allowed in the timing budget, in order to achieve timing closure in an automated way.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/492,709, entitled “Display and automatic improvement of timingand area in a network-on-chip,” filed on Jun. 2, 2011, the entirecontents of which are incorporated herein by reference.

TECHNICAL FIELD

This disclosure generally relates to the design of network on chip (NoC)architectures.

BACKGROUND

The term “tool” is understood to encompass software used to aid in andautomate the design of electronics. The term “start point” is understoodto encompass flip-flops (flops) and input ports. The term “end point” isunderstood to encompass registers and output ports. A system-on-chip(SoC) comprises at least one network-on-chip (NoC). A NoC comprises aset of units the interconnection of which transports transactionsbetween at least one master and at least one slave intellectual propertycore (IP). The IP cores themselves may be considered components of aNoC. A model of a NoC can be exported as a register transfer level (RTL)language description and in other representations such as SystemC orIP-XACT. Each instantiation of a unit has a configuration and eachconfiguration of an instantiation of a unit has a model. The model canbe exported from the tool as one or more RTL language modules, which aresynthesized into a netlist of cells. Unit models comprise one or morecomponent models, which in turn may comprise one or more componentmodels and so on. Ultimately, each component model is composed entirelyof elementary models such as individual gates and registers, connectedby nets, one property of which is an estimated size.

State of the art NoC architectures are designed using a tool with agraphical user interface (GUI). The GUI shows units that comprise theNoC and allows the user to configure the connections between the units,cumulatively known as the topology of the NoC. The prior artconfiguration process 100 is shown in FIG. 1 and is as follows.

A user configures a NoC (102) using the NoC design tool. The NoC designtool exports a model of the NoC in a RTL language (104). The RTLlanguage model describes the functionality and connectivity of the NoCunits. The RTL model includes registers that consist of one or moreflops. The RTL model is synthesized by a synthesis tool (106), which isdifferent from a NoC design tool, into a netlist of cells. The synthesistool reports the cell area of modules within the NoC RTL model. Thesynthesis tool also estimates the delay time for signal propagationalong all logical paths between inputs and flops, between every twoflops with a logical connection, and between flops and outputs, as wellas fully combinatorial paths between inputs and outputs.

For a more accurate estimate of path delays in the final hardwareimplementation, place and route (P&R) tool takes the netlist and placeseach cell within a floorplan of the SoC silicon die connected by wiresrouted within the floorplan (108). A static timing analysis (STA) toolcarefully calculates the delay time for signal propagation along alllogical paths between inputs and flops, between every two flops with alogical connection, and between flops and outputs, as well as fullycombinatorial paths between inputs and outputs (108).

Both the synthesis and static timing analysis tools produce a timingreport showing the path delay through each cell in the netlist. Thelisted paths are typically sorted in order of the amount of delay,beginning with the longest. Paths with delay longer than a target clockperiod are known as critical paths. Critical paths prevent the SoC fromoperating correctly at the clock frequency corresponding to the targetclock period. If there are no critical paths then the timing is met andthe process is complete. If there are critical paths then the NoCtopology is reconfigured (102) in the GUI and the process repeated.

In another case, the listed paths are sorted in order of the amount ofdelay, beginning with the shortest. Paths with delay shorter than atarget hold time period are known as violating a hold time constraint.Paths that violate a hold time constraint prevent the SoC from operatingcorrectly at any clock frequency and can only be corrected by addinglogic delay such as combinatorial buffers. If there are no pathsviolating hold time constraints then the timing is met and the processis complete. If there are paths violating hold time constraints then theNoC topology is reconfigured in the GUI and the process repeated.

Pipelining

A reliable topology change to eliminate critical paths is the insertionof one or more flops within the paths that violate timing. This processis known as pipelining, and the inserted flops are known as pipe stages.

Synthesis and P&R tools create and remove logic cells to implement thefunctionality of logic between signals as described in the RTL model. Itis practically difficult for those tools to preserve the names ofsignals from the RTL model. However, with most design methodologies thesynthesis and P&R tools use exactly the number of flip-flop cells andinputs and output ports corresponding to the descriptions in the RTLmodel. Those cells and input and output ports preserve in the netlistand timing report the names that were given in the RTL model.

It is commonplace to flatten the hierarchy of RTL language modules inorder to allow greater opportunity for optimization by the synthesistool. Flattening frees the synthesis tool to lose more name information.That is acceptable below a certain level of hierarchy, as long as totalflattening of the entire hierarchy is not performed. Generally,flattening to one or two levels below the top gives most benefits ofsynthesis optimization, preserving enough signal names for NoC analysisand debugging.

The NoC design tool that generates the RTL model does so by giving theregisters and ports names that are descriptive of their position in theNoC topology. Based on the names of cells, and particularly the names offlip-flops, the designer uses the timing report to determine where inthe topology the slow paths are. By doing so, the designer knows wherein the topology to edit the NoC in order to improve the timing. Thesimplest and most reliable edit to improve timing without modificationof the architecture of the NoC is to instantiate a pipeline stage unitat a location in the topology traversed by the critical path. Thedesigner repeats the procedure of configuring the NoC, exporting RTLmodel, synthesizing, place and routing, and analyzing timing as neededto meet the specified target clock period.

In the prior art, the mapping of the paths listed in a timing report tothe locations within a NoC topology is done manually by the designer.The process is tedious. Each path takes minutes or longer to find in theNoC topology. Critical paths are abbreviated by the designer by theinsertion of pipeline stages. Every pipeline stage uses silicon arearesources and adds latency to traffic in the NoC. To minimize the numberof pipeline stage registers it is desirable to add pipeline stageregisters before the last point in the path with the maximum delayallowed in the timing budget.

A first path, on which delay improvement is desirable, may partiallyoverlap a second path. An optimal insertion of pipeline stage registersto break both timing paths might be at a location less than the unitimmediately before the last point in the first path with the maximumdelay allowed in the timing budget.

Area

Aside from path delay, area is a critical chip design constraint.Editing the topology, for example by adding pipe stages, affects the NoCarea. Optimizing the topology often requires trade-offs between clockperiod and area. It is desirable to limit or at least observe the areaof NoC units in order for the designer to control the trade-off betweensize, speed, and architectural performance.

SUMMARY

A method and NoC design tool is disclosed that automatically maps thepaths listed in a timing report and the unit size in an area report tothe topology of a NoC and displays the paths and unit sizes in a GUI.The tool can also automatically add pipeline stages, separated by themaximum delay allowed in the timing budget, in order to achieve timingclosure in an automated way.

The disclosed implementations serve the purpose of easing the process ofdesigning a NoC by automating several manually tedious aspects of theprocess.

DESCRIPTION OF DRAWINGS

FIG. 1 is a flow diagram illustrating the prior art process ofconfiguring a NoC.

FIG. 2 is a flow diagram illustrating an example process of configuringa NoC followed by the automatic display of timing paths and unitsannotated by their area within the topology of a NoC.

FIG. 3 is a flow diagram illustrating an example process of automaticpipeline stage insertion.

FIG. 4 illustrates the display of units in a GUI of the design toolhighlighting the critical path.

DETAILED DESCRIPTION Area

In one embodiment, the NoC design tool estimates the area of the logicof a NoC, in units of gates. The estimate is made by adding theestimated area of each configured instantiation of units within the NoC.The area of each configured instantiation is calculated by a recursiveprocess of estimating the area of components down to elementalcomponents such as elementary gates, multiplexors (muxes),demultiplexors (demuxes), and flip-flops.

The estimated gate area is then displayed in the GUI with each unit,with each group of units, and/or with each submodule of the NoCencompassing multiple units. The display of gate count numbers for eachunit, group, or submodule can be enabled or disabled through settings inthe GUI.

In one embodiment, shown in FIG. 2, a user configures an NoC using adesign tool (202). The NoC design tool exports an RTL model of the NoC(204). A synthesis tool synthesizes a netlist of standard cells from theRTL model (206). The synthesis tool also generates a report of the areaof each standard cell and each RTL language module from the area of allstandard cells of which it consists. It is important that the synthesistool be configured and operated, generally through a tool commandlanguage (TCL) script, to preserve the names of signals (for example bynot flattening the module hierarchy) of at least one level of modulehierarchy. This will allow the NoC synthesis to perform a mapping of RTLlanguage modules to instantiations of units in the NoC (210).

For a more accurate estimate of area in the final hardwareimplementation, a P&R tool takes the netlist and places each cell withina floorplan of the SoC silicon die connected by wires routed within thefloorplan (208).

Next, the NoC design tool reads the RTL language module area informationthat is reported by the synthesis tool, and displays it as a table inthe GUI, organized in a tree structure (210). The tree indicates thehierarchy of parent/child relationships among the modules of the NoC RTLmodel. Based on the names of the modules from the RTL model, the NoCdesign tool maps the areas of modules to the units that comprise the NoC(210). It further displays the area of units on a list of the units inthe NoC. Another view within the GUI annotates a graphical display ofsectors as described above.

Using the synthesis tool or P&R area estimate is more accurate than thegate count estimate made inside the NoC design tool. This is because thesynthesis tool knows the actual size of each standard cell in the targetlibrary and makes optimizing choices of cells. The P&R tool is even moreaccurate because the P&R tool chooses the physical placement of cellswithin the floorplan of the chip. The P&R tool might or might not chooseto leave space between cells depending on design rule constraints suchas those related to wire density and timing constraints.

Whereas one embodiment of a NoC design tools may be restricted solely tothe transport of transactions between industry standard interfaces,another embodiment encompasses a broader view of the SoC. In thatembodiment the IPs that comprise the SoC are included in the descriptionand their size is reported in a graphical view of the NoC.

Timing

A synthesis tool also reports the timing of paths in the NoC. Often thisis done with paths sorted from the longest. The timing report gives alist of cells in the path, the delay through each cell, and thecumulative delay at each cell in the path. A synthesis tool makes thereport based solely on a delay model of each cell or that combined witha tabular model (wire load model) of delay for wires between cells. Aplace & route tool determines the physical placement of cells and thegeometry of wires between them. It determines not only the cell delaybut also information about the wiring connectivity between the cells.That includes information about the length, width, and thickness ofwires and the location of vias between the metal layers of the chip inorder to extract accurate parasitic elements, which can be backannotated on the gate description for a better timing analysis. A statictiming analysis tool, run on the P&R output, can thereby make a moreaccurate estimate of timing.

In another embodiment of the invention, also represented by FIG. 3, theNoC is initially configured (202). Next, the NoC design tool exports anRTL model of the NoC (204). A synthesis tool synthesized the a netlistof standard cells from the RTL model (206). The synthesis tool alsogenerates a report of the timing paths in the design. It is importantthat the synthesis tool be configured and operated, generally through aTCL script, to preserve the names of signals (for example by notflattening the module hierarchy) of at least one level of RTL languagemodule hierarchy. This will allow the NoC synthesis to perform a mappingof RTL language modules to instantiations of units in the NoC (210).

For a more accurate estimate of path delays in the final hardwareimplementation, a P&R tool takes the netlist and places each cell withina floorplan of the SoC silicon die connected by wires routed within thefloorplan (208). A STA tool carefully calculates the delay time forsignal propagation along all logical paths between inputs and flops,between every two flops with a logical connection, and between flops andoutputs, as well as fully combinatorial paths between inputs and outputs(208).

Next, the NoC design tool reads the path timing information that isreported by the synthesis tool or by the STA tools. For a chosen timingpath, the tool maps the start point to a unit in the NoC (210). The toolproceeds to map the names of intermediate signals in the timing path andthe end point to units within the NoC. The units are highlighted in theGUI. The highlighting indicates, using lines with arrows, the order ofunits traversed by signals in the timing path. Timing path reports alsoindicate, among other information, the target delay constraint, which isalso known as the timing budget. The NoC design tool displays the linesin the GUI with colors. The line(s), if any, indicating the path betweenunits where the cumulative time in the path is before the expiration ofthe timing budget are black. The line(s), if any, after the timingbudget expires are red.

FIG. 4 shows an example of display in the GUI. In the example, the startpoint of the path is in unit B and the end point is in unit E. Units B,C, D, and E are highlighted to indicate that at least one part of thetiming path exists in those units. Arrow 401 is black. It indicates asegment of the timing path. The timing path traverses logic in units Cand D with the successive segments of the path passing from unit C to D,D to C, and C to D again. The timing budget expires in the finaltraversal of unit C and so arrows 402 and 403 are displayed in red(indicated in FIG. 4 as a dashed line). No part of the timing path is inunits A or F. As a result of the display, the user knows in whichsegment of the path to add a pipe stage in order to fix a timingviolation, and in which unit that segment exists. In other embodiments,the connections can be visually augmented in other ways, including butnot limited to different line styles or fill patterns, animation,glowing or other contrasting effects, shadowing or any other visualindications.

Automatic Pipeline Stage Insertion

A synthesis run can generate a result with many thousands or more oftiming paths that violate their timing budgets. Despite the convenienceof seeing the timing paths in the GUI, the process of inserting pipelinestages at optimal locations in the NoC topology is a tedious manualprocedural process. Another embodiment, shown in FIG. 3, saves time inthe process of designing a NoC by automating the insertion of pipelinestages.

A user configures an NoC using a design tool (302). The NoC design toolexports an RTL model of the NoC (304). A synthesis tool synthesizes anetlist of standard cells from the RTL model. The synthesis tool alsogenerates a report of the timing paths in the design in a manner thatpreserves the names of signals (by not flattening the module hierarchy)of at least one level of RTL language module hierarchy. Optionally, P&Rand STA are run and a timing report is generated. The process ofsynthesis and P&R and STA is the same in FIG. 3 and in FIG. 2, butabbreviated by a dashed line.

From the synthesis or STA timing report the NoC design tool reads thepath timing information for the slowest path. Beginning at the startpoint of the path the NoC design tool maps successive signal of the pathto instantiations of units in the NoC. It does so until reaching asignal that is beyond the timing budget

If the NoC design tool reaches the endpoint of the slowest path withoutfinding a path segment beyond the timing budget then the design hasachieved timing closure and the NoC design tool finishes the process byreporting success. If the NoC design tool finds a segment of the timingpath for which the cumulative delay of all previous logic in the path isgreater than the timing budget then the NoC design tool inserts a pipestage unit between the previous unit that had no timing violation andthe unit of the logic with that first exceeds the timing budget (308).

For a configurable number of timing paths, as few as one (the case shownin FIG. 3) or as many as is practical, the NoC design tool chooses anext slowest path and repeats the procedure of inserting a pipe stage(308). However, the NoC design tool saves a table of the locations inthe topology in which it has previously added pipe stages. If a segmentof a path before the expiration of the timing budget crosses betweenunits in between which the NoC design tool had previously inserted apipe stage then the path is ignored. If a timing path is encountered,the end point of which does not exceed the timing budget, then theprocedure is ended.

At the end of the procedure of inserting pipe stages on long timingpaths the NoC design tool proceeds to export an RTL model and runsynthesis again. For brevity, FIG. 3 indicates the process of runningsynthesis or synthesis and P&R with a dashed line. The NoC design toolcounts the number of iterations as it repeats the full iterative loop.If a maximum number of iterations is reached without reaching successfultiming closure then the NoC design tool ends the process by reportingfailure.

The disclosed embodiments are distinct in several important ways fromconventional methods. With the disclosed embodiments, register retimingis constrained to preserve the functionality, in terms of cycles ofpipeline latency, between iterations of the transformation process. Thedisclosed embodiments takes advantage of the fact that a NoC is modularand has no backwards dependencies between modules. As a result, theregisters of pipeline stages can be added. This allows timing closuremore easily, though at the expense of greater pipeline latency.Furthermore, a pipeline stage is more than just a register. Pipe stageunits in a NoC necessarily include logic to implement flow control.Another important distinction is that a NoC design tool inserts pipelinestages at the architecture level. As a result, all models of the NoCderived and exported by the NoC design tool include the functionality ofthe pipe stage. This might include SystemC, Verilog, VHDL, latencyreports, and other descriptions of the NoC or its behavior.

The design tool can be implemented in firmware, software, or incombinations of them. The design tool can be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device, for execution by a programmableprocessor; and method steps can be performed by a programmable processorexecuting a program of instructions to perform functions of thedescribed implementations by operating on input data and generatingoutput.

The described features can be implemented advantageously in one or morecomputer programs that are executable on a programmable system includingat least one programmable processor coupled to receive data andinstructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that can be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program can be written in anyform of programming language (e.g., Objective-C, Java), includingcompiled or interpreted languages, and it can be deployed in any form,including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors orcores, of any kind of computer. Generally, a processor will receiveinstructions and data from a read-only memory or a random access memoryor both. The essential elements of a computer are a processor forexecuting instructions and one or more memories for storing instructionsand data. Generally, a computer can communicate with mass storagedevices for storing data files. These mass storage devices can includemagnetic disks, such as internal hard disks and removable disks;magneto-optical disks; and optical disks. Storage devices suitable fortangibly embodying computer program instructions and data include allforms of non-volatile memory, including by way of example semiconductormemory devices, such as EPROM, EEPROM, and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, ASICs(application-specific integrated circuits).

To provide for interaction with an author, the features can beimplemented on a computer having a display device such as a CRT (cathoderay tube) or LCD (liquid crystal display) monitor for displayinginformation to the author and a keyboard and a pointing device such as amouse or a trackball by which the author can provide input to thecomputer.

The features can be implemented in a computer system that includes aback-end component, such as a data server or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include a LAN, a WAN and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork. The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other.

One or more features or steps of the disclosed embodiments can beimplemented using an Application Programming Interface (API). An API candefine on or more parameters that are passed between a callingapplication and other software code (e.g., an operating system, libraryroutine, function) that provides a service, that provides data, or thatperforms an operation or a computation.

The API can be implemented as one or more calls in program code thatsend or receive one or more parameters through a parameter list or otherstructure based on a call convention defined in an API specificationdocument. A parameter can be a constant, a key, a data structure, anobject, an object class, a variable, a data type, a pointer, an array, alist, or another call. API calls and parameters can be implemented inany programming language. The programming language can define thevocabulary and calling convention that a programmer will employ toaccess functions supporting the API.

In some implementations, an API call can report to an application thecapabilities of a device running the application, such as inputcapability, output capability, processing capability, power capability,communications capability, etc.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. Elements of one ormore implementations may be combined, deleted, modified, or supplementedto form further implementations. As yet another example, the logic flowsdepicted in the figures do not require the particular order shown, orsequential order, to achieve desirable results. In addition, other stepsmay be provided, or steps may be eliminated, from the described flows,and other components may be added to, or removed from, the describedsystems. Accordingly, other implementations are within the scope of thefollowing claims.

1. A method of displaying the area of units comprised by a network onchip (NoC) in a graphical user interface (GUI), the method comprising:determining an area of at least one unit of the NoC; and displaying thearea of the at least one unit within the GUI.
 2. The method of claim 1wherein the method of determining the area comprises: choosing a modelfor a type and configuration of the unit; calculating a size of the unitfrom a sum of the size of its components; calculating a size of thesubcomponents of the components recursively; and looking up the size ofelemental components in a table.
 3. The method of claim 1 wherein themethod of determining the area comprises: exporting an register transferlanguage (RTL) model of the NoC; synthesizing the model to preserve theidentity of at least one module that is a constituent of the unit;retrieving area information, resulting from synthesis, for the at leastone module; and calculating a sum of the area of the at least onemodule.
 4. The method of claim 3 further comprising: placing and routingthe synthesized netlist to preserve the identity of the at least onemodule.
 5. The method of claim 1 wherein the at least one unit is an IP.6. A method of displaying a timing path within a network on chip (NoC)in a graphical user interface (GUI), the method comprising: exporting aregister transfer language (RTL) model of the NoC; synthesizing themodel to preserve the identity of a first signal and a second signalthat is connected to the first signal by a timing path; mapping thefirst signal to a first unit of the NoC; mapping the second signal to asecond unit of the NoC; and displaying at least one line between theunits within the GUI.
 7. The method of claim 6 further comprising:placing and routing the model to preserve the identity of the firstsignal and the second signal that is connected to the first signal by atiming path.
 8. The method of claim 6 wherein the display indicates thedirectionality of the path on the at least one line.
 9. The method ofclaim 6 wherein the at least one line indicates whether the part of thepath between the units is before or after a target time.
 10. The methodof claim 6 wherein the GUI comprises a viewer that represents theconnection between different objects present in the NoC.
 11. A method ofautomatically improving the timing of a network on chip (NoC)comprising: exporting a register transfer language (RTL) model of theNoC; synthesizing the model to preserve the identity of signals;determining a slowest path; mapping a signal at the start of the slowestpath to a first unit of the NoC; mapping a sequentially next subset ofthe slowest path to a corresponding unit, for a number of times equal toor greater than one; if the subset of the slowest path is the first toexceed a target time, inserting a pipe stage before the unit to whichthe subset of the path is mapped.
 12. The method of claim 11 furthercomprising: placing and routing the model in a manner that preserves theidentity of signals.
 13. The method of claim 11 wherein a pipe stagecomprises logic other than flip-flops.
 14. The method of claim 11wherein the inserted pipe stage is implemented in the architecturedescription of the NoC whereby the presence of the inserted pipe stageis reflected in at least one model derived from the architecture otherthan the synthesized RTL model.
 15. The method of claim 11 furthercomprising: if the subset of the slowest path is the first to exceed atarget time beyond the previously inserted pipe stage, inserting a pipestage before the unit to which the subset of the path is mapped.
 16. Themethod of claim 11 further comprising: checking to see if a target timeis met.
 17. The method of claim 16 further comprising: checking to seeif a maximum number of iterations is met.
 18. A method of automaticallyimproving the timing of a network of chip (NoC) comprising: exporting anregister transfer language (RTL) model of the NoC; synthesizing themodel to preserve the identity of signals; determining a path; mappingthe signal at the start of the path to a first unit of the NoC; mappinga sequentially next subset of the path to a corresponding unit, for anumber of times equal to or greater than one; if the subset of the pathis the first to exceed a target time beyond a previously inserted pipestage, inserting a pipe stage before the unit to which the subset of thepath is mapped.